home *** CD-ROM | disk | FTP | other *** search
/ Ian & Stuart's Australian Mac: Not for Sale / Another.not.for.sale (Australia).iso / Dr. Doyle / LEARN C⁄C++ TODAY < prev    next >
Text File  |  1994-09-27  |  37KB  |  766 lines

  1.  
  2. Archive-name:    C-faq/learn-c-cpp-today
  3. Last-modified:  Wednesday - September 21, 1994
  4.  
  5.                         Copyright (c) 1994  Vinit Carpenter 
  6.                                 All rights reserved
  7.  
  8.  
  9. Introduction:
  10. -------------
  11.  
  12.     This is a list of a  few  C  and  C++ language tutorials available to a
  13.     user.   This  list includes interactive tutorials,  public-domain  code
  14.     collections, books etc.  I've developed this FAQ purely as a  volunteer
  15.     effort  as  a service to the Internet community.  Although every effort
  16.     has been made to insure that all the information here is as accurate as
  17.     possible, no guarantee is implied or intended.
  18.  
  19.     I welcome comments, suggestions  or  criticism  for  all the people out
  20.     there  on the net that read this.  If you can help me make this list  a
  21.     little better, you will be helping a lot of people  out  there  on  the
  22.     net.   I  am  a horrible writer and an even worse speller.  If you find
  23.     any errors or would like to  suggest  any additions please feel free to
  24.     email me at the address below:
  25.  
  26.             carpenterv@vms.csd.mu.edu
  27.  
  28.   
  29. What's new in this issue:
  30. -------------------------
  31.  
  32.     This section of the  document  will  point  out  all the new additions,
  33.     corrections,  updates  etc.  If there is enough interest, I will  start
  34.     producing a 'diff' version.  
  35.  
  36.     1. Added a second web server that has the HTML and PS version of this 
  37.        document.
  38.     2. Updated the information on the 'C++ on the WWW'.  The address has
  39.        of the web server has changes.  The author also converted Dordill's
  40.        C++ course to HTML which is online.
  41.     3. Updated the information in the MSDOS/Windows compilier section.
  42.     4. Added a new item called `Programming in C' that contains a great 
  43.        collection of C and programming items.
  44.     5. Updated the information on the C++ FAQ.  
  45.  
  46.     I am switching to URL in place of the standard ftp and filename format.
  47.     URL stands for "Uniform Resource Locator".   Think of it as a networked
  48.     extension of the standard filename concept: not only can you point to a
  49.     file  in a directory, but that file and that directory can exist on any
  50.     machine on the network, can be served  via  any  of  several  different
  51.     methods,  and might not even be something as simple as a file: URLs can
  52.     also point to  queries,  documents  stored  deep  within databases, the
  53.     results of a finger or archie command, or whatever.
  54.    
  55.     File URL:
  56.     ---------
  57.     file://oak.oakland.edu/pub/msdos/c/00_index.txt
  58.  
  59.     Gopher URL:
  60.     -----------
  61.     To connect to a particular gopher server, use this URL:
  62.  
  63.     gopher://gopher.tc.umn.edu/
  64.  
  65.     News URL:
  66.     ---------
  67.     To point to a Usenet Newsgroups, the URL is simply:
  68.  
  69.     news:comp.lang.c
  70.  
  71.     HTTP URL:
  72.     ---------
  73.     HTTP  stands  for  HyperText  Transport  Protocol.   HTTP  servers  are
  74.     commonly used for serving hypertext documents
  75.  
  76.     http://vinny.csd.mu.edu
  77.  
  78.     This file is posted on the 1st and the 15th of each month to the Usenet
  79.     Newsgroups  COMP.LANG.C,  COMP.LANG.C++,  NEWS.ANSWERS  & COMP.ANSWERS.
  80.     The  HTML  and  postscript  version of this  documents  are  available.
  81.     Here's the URL:
  82.  
  83.     http://ncc1701d.csd.mu.edu                   
  84.         http://nyx10.cs.du.edu:8001/~vcarpent/learn-cpp.html
  85.  
  86.     NOTE: This is my Linux PC  that  does  get inundated with request.  The
  87.     last  time  I checked the stats, there were about 27 connections  every
  88.     minute.  If you get timed out, please try the second (nyx) link.   Both
  89.     of  the sites will have the latest version of the document online.  The
  90.     most  recently  posted  version  of  this   document  is  kept  on  the
  91.     news.answers archive on rtfm.mit.edu.  You can receive it via anonymous
  92.     ftp.  The URL is listed below.
  93.     
  94.         ftp://rtfm.mit.edu/pub/usenet/news.answers/C-faq/learn-c-cpp-today
  95.  
  96.     If you don't have access to ftp, you can also receive this file via
  97.     e-mail by sending mail to mail-server@rtfm.mit.edu with:
  98.  
  99.     send /pub/usenet/news.answers/C-faq/learn-c-cpp-today
  100.  
  101.     in the body (not subject line) of your message. You can also receive
  102.     the latest version via electronic mail by e-mailing me.
  103.     
  104.         To: carpenterv@vms.csd.mu.edu
  105.     Subject: SEND LEARN C/C++ TODAY LIST
  106.     Body: ignored. Can be blank.
  107.  
  108.     I've written a little mailserver that doesn't always work, so please be
  109.     patient.  All requests  will be handled within 12 hours.  I am planning
  110.     to move this whole distribution thing  to  my Linux PC which will solve
  111.     all   the  delay  problems.   For  now,  you  might  want  to  use  the
  112.     news.answers archive for the latest  copy  of  this  file.   A  lot  of
  113.     tutorials discussed here are available via anonymous ftp.  If you don't
  114.     have  ftp,  you  can also retrieve these files via a ftp-email gateway.
  115.     To retrieve files via e-mail,  send mail to ftpmail@decwrl.dec.com with
  116.     the  command HELP in the body of the message to receive a complete list
  117.     of all commands.  A typical message would look something like this:
  118.  
  119.             connect oak.oakland.edu
  120.             chdir /pub/msdos/c
  121.             binary
  122.             uuencode
  123.             get xxx.zip
  124.             quit
  125.  
  126.     Some of the items discussed  here  are  platform-dependent, but most of
  127.     the  items are applicable across all platforms (portable).  If you have
  128.     any comments, suggestions, complaints, additions, etc, please feel free
  129.     to e-mail me at the following address:
  130.  
  131.     carpenterv@vms.csd.mu.edu
  132.  
  133.     If you are working on a tutorial or would like something added to this
  134.     list, please e-mail me at the address given above.
  135.  
  136. The Origins of C and C++:
  137. -------------------------
  138.  
  139.     The  'C'  programming  language   was   originally  developed  for  and
  140.     implemented  on  the UNIX operating system, on a DEC PDP-11  by  Dennis
  141.     Ritchie.  One of the best features of C is that it is not tied  to  any
  142.     particular  hardware or system.  This makes it easy for a user to write
  143.     programs that will run without any changes on practically all machines.
  144.     C is often called a  middle-level  computer language as it combines the
  145.     elements  of  high-level languages with the functionalism  of  assembly
  146.     language.
  147.  
  148.     C allows the  manipulation  of  bits,  bytes  and  addresses- the basic
  149.     elements with which the computer functions.  Another good point about C
  150.     is  its  portability which makes it possible to adapt software  written
  151.     for one type of computer to another.  C was  created,  influenced,  and
  152.     field  tested  by  working programmers.  The end result is that C gives
  153.     the programmer what  the  programmer  wants.   C  offers  the  speed of
  154.     assembly  language  and  the  extensibility of FORTH, but  few  of  the
  155.     restrictions of Pascal and Modula-2.
  156.  
  157.     C++ is an enhanced version of  the C language.  C++ includes everything
  158.     that  is  part  of C and adds support for  object-oriented  programming
  159.     (OOP).  In addition, C++ also contains many improvements  and  features
  160.     that  make it a "better C", independent of object oriented programming.
  161.     C++ is actually an extendible language since we can define new types in
  162.     such a way that they act just  like the predefined types which are part
  163.     of the standard language.
  164.  
  165.     If you just use C++ as a  better  C,  you  will not be using all of its
  166.     power.  Like any quality tool, C++ must be used the way it was designed
  167.     to  be used to exploit its richness.  Some of the new features  include
  168.     encapsulation,   inline   function   calls,   overloading    operators,
  169.     inheritance and polymorphism.  I am not going to explain what they mean
  170.     here  as  that  would simply take me away from my purpose here, but you
  171.     can refer to any  good  C++  book  or  the  C++  FAQ  (Item 7) for more
  172.     information.
  173.      
  174.  
  175. What do you need to get started?
  176. --------------------------------
  177.  
  178.     The first thing you need is  a  compiler.   A compiler reads the entire
  179.     program and converts it into object code, which is a translation of the
  180.     program source code into a form that the computer can execute directly.
  181.  
  182.     
  183. UNIX SYSTEM:
  184.     
  185.     Type cc at the %  prompt.   If  you  don't  get any error messages, you
  186.     probably have a C compiler .  If you get an error message, try acc, gcc
  187.     or  g++.   If  any  of  these don't work,  contact  your  local  system
  188.     administrator and ask him/her to get you a C/C++ compiler.   GNU  C/C++
  189.     compiler is available from a lot of anonymous ftp sites free of charge.
  190.     Look  into  it.   (I've  got  g++  running  on my Linux box without any
  191.     problems)
  192.     
  193. MSDOS/Windows (IBM COMPATIBLES): 
  194.     
  195.     There are a lot of good compilers  available to you.  Microsoft Quick C
  196.     and  Borland Turbo C/C++ are both good products for beginners.  You can
  197.     buy both of them for  under  $50.00.   I  use  Microsoft  Quick  C  and
  198.     MS-Visual  C/C++, and I prefer Quick-C for all my DOS programs as it is
  199.     small, and yet very powerful.   Most  of  my  programming  is now on my
  200.     Linux  PC with gcc/g++.  (If you want a great 32 bit operating  system,
  201.     you should look into Linux.  E-mail me for details).  You can also  get
  202.     the   DOS   port   of  GNU  C/C++  called  DJGPP  from  oak.oakland.edu
  203.     /pub/msdos/djgpp.  If you are using OS/2 on  your PC, you might want to
  204.     look  into Borland C++ 1.0, CSET++ 2.x (IBM) or GNU gcc 2.5.8 available
  205.     from ftp.cdrom.com.
  206.  
  207.     
  208. OpenVMS (VAX & AXP)
  209.     
  210.     If you're on a VAX, type  in  CC  to  check  and  see if you have a C
  211.     compiler.  VAX C is not the best compiler around, but it certainly does
  212.     the  job.   If  you don't have a C compiler, look into  the  GNU  C/C++
  213.     compiler GCC.  You can get the VAX version of GCC from ftp.spc.edu  via
  214.     anonymous  ftp.   If  on  a  AXP  system, you should have access to DEC
  215.     C/C++.  Please contact  your  local  system  administrator  or computer
  216.     consultant for more site specific questions.
  217.  
  218. Macintosh (Apple/PowerMac)
  219.  
  220.     There are three main  players  in  the  Mac  compiler market: MPW (from
  221.     Apple),  THINK  C / Symantec C++ (both from Symantec),  or  CodeWarrior
  222.     (from Metroworks): THINK C is $225 (only a C compiler), while  Symantec
  223.     C++ is $375 (includes C and C++ compilers).  CodeWarrior comes in three
  224.     versions:  bronze,  silver,  and  gold,  at $199/299/399, respectively.
  225.     Bronze generates 68K  code,  silver  generates  PowerPC  code, and gold
  226.     generates  both.   All  three  versions  include  C,  C++,  and  Pascal
  227.     compilers.  The Symantec C++ compiler (ver 7.0) can be  bought  with  a
  228.     cross-compiler for the PowerMac.
  229.  
  230.     There have been  two  attempts  at  freeware/shareware Mac C compilers:
  231.     Sesame  C  and  Harvest.   Harvest  C was an  ambitious  attempt  at  a
  232.     production-quality  freeware compiler which was later abandoned by  the
  233.     author.
  234.  
  235.  
  236. Tutorials:
  237. ----------
  238.  
  239. 1) Title:       A C tutorial. 
  240.    Filename:    C-LESSON.ZIP
  241.    Author:    Christopher Sawtell.
  242.    E-mail:    chris@gerty.equinox.gen.nz
  243.    URL:        ftp://garbo.uwasa.fi/pc/c-lang/c-lesson.zip
  244.  
  245.     This tutorial contains  a  complete  course  for  you  to learn the 'C'
  246.     computer  language itself.  Some knowledge, of computers and the jargon
  247.     is  assumed,  but  complicated  concepts  are  fully  explained.   This
  248.     tutorial  is  geared  towards the UNIX operating system, but everything
  249.     discussed here applies across all  platforms.   Most of the source code
  250.     included  here compiles under all the platforms.  This is a good effort
  251.     and is worth your time.  Updates to this tutorials are  posted  to  the
  252.     USENET group comp.lang.c.
  253.  
  254. 2) Title:    Coronado;s Generic C tutor v2.0
  255.    Filename:    GENCSRC.ZIP
  256.         GENCTXT.ZIP   
  257.    Author:    Gordon Dodrill
  258.    E-mail:    --
  259.    URL:        ftp://oak.oakland.edu/pub/msdos/c/gencsrc.zip
  260.            ftp://oak.oakland.edu/pub/msdos/c/genctxt.zip
  261.  
  262.  
  263.     This is one of the most complete tutorials out there.  Once again, most
  264.     of the items covered here  are  apply  across all platforms.  There are
  265.     some  items  discussed  here  that are  DOS  dependent.   The  tutorial
  266.     includes a manual that covers all the aspects of the C  language.   The
  267.     archive  also includes a huge collection of C code that is discussed in
  268.     this tutorial.   The  best  way  to  learn  anything  is  by  practical
  269.     application  and this tutorial does just that.  A payment of $10.00  is
  270.     requested by the author if you  find  the  tutorial  helpful,  but  the
  271.     payment  is  not  required.  I think you should send in the $10.00 as a
  272.     lot of time and effort went into this project.
  273.  
  274. 3) Title:    Thread An On-Line C Help File V 1.01
  275.    Filename:    THREAD.ZIP
  276.    Author:    Fran Horvath
  277.    E-mail:    --
  278.    URL:        ftp://oak.oakland.edu/pub/msdos/c/thread.zip
  279.  
  280.  
  281.     Thread is a C language help utility.  It was written by a member of the
  282.     U.S.D.A.  Grad School faculty to help students learning the C language.
  283.     Thread is a variable  record-length  database,  together with an index,
  284.     that  enables  the  fast lookup and  display of  C  keywords,  standard
  285.     library  functions,  and  other  items.   There  are  a  few  important
  286.     functions missing from this help utility, but it is still a pretty good
  287.     resource.  Give it a shot.
  288.  
  289. 4) Title:    Collection of C-Snippets
  290.    Filename:    SNIP9404.ZIP
  291.    Author:    Bob Stout
  292.    E-mail:    bobstout@neosoft.com
  293.    URL:        ftp://oak.oakland.edu/pub/msdos/c/snip9404.zip
  294.  
  295.     This  is  the  April  94   release   of   one  of  the  biggest  public
  296.     domain/freeware portable C code and instruction text.  According to the
  297.     author,  the  1.1 MB archive contains over 360 files and  approximately
  298.     35% of it is PC-specific.  The  rest  of  it  is  completely  portable.
  299.     There  is a piece of code for every single task starting with macros to
  300.     complete cut-and-paste C code  solution  and utilities, along with some
  301.     frequently  asked questions and instructional files.  This archive is a
  302.     must for every programmer.   If  you  already  have  SNIP0493.ZIP,  get
  303.     SNPD9404.ZIP which is basically the 'diff' file.
  304.  
  305.  
  306. 5) Title:    COMP.LANG.C FAQ
  307.    Filename:    FAQ
  308.    Author:     Steve Summit 
  309.    E-mail:     scs@eskimo.com 
  310.    URL:     ftp://rtfm.mit.edu/pub/usenet/news.answers/C-faq/faq
  311.    
  312.  
  313.     The FAQ (Frequently Asked  Questions)  is  a compilation of frequently-
  314.     asked  questions  of  the  usenet group,  COMP.LANG.C  along  with  the
  315.     answers.  Steve's put in a lot of work and this compilation  shows  it.
  316.     I  found that the FAQ answered a lot of my questions.  I even learned a
  317.     lot of new things  browsing  through  the  document.   I think this FAQ
  318.     should  should  be  on  your  computer desk right  next  to  a  good  C
  319.     programming book.  The FAQ is posted to  COMP.LANG.c  and  news.answers
  320.     every month along with the diff version.
  321.  
  322.  
  323. 6) Title:    TUTOR v3.10
  324.    Filename:    CTUTORDE.ZIP
  325.    Author:    Gordon Dodrill
  326.    E-mail:    rowe@netcom.com
  327.    URL:        ftp://oak.oakland.edu/pub/msdos/c/ctutorde.zip
  328.  
  329.  
  330.     This is an educational learning tool which helps expedite the difficult
  331.     process  of  learning  the  C  Programming  Language.   It  includes  a
  332.     tutorial,  style  guide,  and interactive quiz program  all  integrated
  333.     together in one program.  The tutorial covers both K&R version of C and
  334.     ANSI C.  One of the biggest limitation of this tutorial is that  it  is
  335.     only available for DOS computers.
  336.  
  337.  
  338. 7) Title:    Programming in C
  339.    Filename:    CE.html
  340.    Author:    Dave Marshall
  341.    E-mail:    Dave.Marshall@cm.cf.ac.uk
  342.    URL:        http://www.cm.cf.ac.uk/Dave/C/CE.html
  343.  
  344.     This is one of the best C  programming tutorials out there on the World
  345.     Wide  Web (WWW).  See tutorial #11 for more information on the web  and
  346.     tools to access the web.  This tutorial  starts  out  with  some  basic
  347.     ideas  and  then extends to some more advanced features of C.  With the
  348.     popularity of the World Wide Web, items on the web servers are going to
  349.     be very popular.  This is  really  a  great tutorial and worth checking
  350.     out.   Some  of  the  items discussed here are  loops,  arrays,  string
  351.     manipulation,  pointers,  dynamic  memory  allocation,  I/O,  UNIX,   C
  352.     preprocessor  and  some  exercises.   While you're out there, check out
  353.     Ceilidh, the online C tutoring system.
  354.                                           
  355.  
  356.  
  357. 8) Title:       ANSI C for Programmers on UNIX systems.
  358.    Filename:    love_C.ps.z, love_C.shar
  359.    Author:    Tim Love
  360.    E-mail:    tpl@eng.cam.ac.uk
  361.    URL:        ftp://svr-ftp.eng.cam.ac.uk/pub/misc/love_C.ps.Z
  362.  
  363.  
  364.     This is a really nice C  tutorial  geared towards people on UNIX system
  365.     as  the  title would suggest.  This document introduces C by  providing
  366.     sample programming tasks.  One of the good things about  this  tutorial
  367.     is  that all the source code included is ANSI compliant.  This tutorial
  368.     also includes programming exercises to  aid  or  gauge your progress as
  369.     you  go through the material (answers included in back).  The  tutorial
  370.     covers some of the  basics  such  as  functions,  pointers  and  string
  371.     manipulation  followed  by some programming examples to apply the items
  372.     you've just learned.
  373.  
  374.     There is also a section  on  memory allocation that illustrates the use
  375.     and dangers of malloc.  The section on the Make utility helped me a lot
  376.     as I really don't like make and makefiles.  The section of debugging is
  377.     also  extensive and has some great tips.  The appendix of this tutorial
  378.     also has a section of converting from K&R to ANSI C.  Really great  job
  379.     and well worth the checking into.
  380.  
  381.  
  382. 9) Title:    Coronado Enterprises C++ Tutorial (v2.20)
  383.    Filename:    CPTUTS22.ZIP   
  384.         CPTUTT22.ZIP   
  385.    Author:    Gordon Dodrill
  386.    E-mail:    --
  387.    Phone:    (505) 293-5464
  388.    URL:        ftp://oak.oakland.edu/pub/msdos/cpluspls/cptuts22.zip
  389.            ftp://oak.oakland.edu/pub/msdos/cpluspls/cptutt22.zip
  390.  
  391.  
  392.     Just like its C counterpart, this  is  really  one of the best and most
  393.     complete  C++ tutorial out there.  This tutorial is not for the  person
  394.     just starting out in programming as C++ is not an ideal first language.
  395.     But if you are familiar with C or any other programming language,  this
  396.     tutorial  will  get  you started with C++.  All the source discussed in
  397.     this tutorial is included and learning is really accelerated as you can
  398.     compile the code while you  are  reading  about it.  This tutorial will
  399.     assume  a  thorough knowledge of the C programming language and  little
  400.     time will be spent on the fundamental aspects of the language.  Special
  401.     attention has be devoted to explaining the newer additions as  provided
  402.     by  the  ANSI-C  standard, as  many programmers are used to the old K&R
  403.     school of thought.
  404.  
  405. 10) Title:    COMP.LANG.C++ FAQ
  406.    Filename:    FAQ
  407.    Author:     Marshall P. Cline, Ph.D. 
  408.    E-mail:     cline@parashift.com
  409.    URL:     ftp://sun.soe.clarkson.edu/pub/C++/FAQ
  410.     
  411.     Wow!!!  That's really all I can  say about this collection of questions
  412.     and answers for C++ and Object Oriented Programming (OOP).  This is the
  413.     complete FAQ for the Newsgroups COMP.LANG.C++ compiled by Dr.  Marshall
  414.     Cline.  I have been programming in C++ for a few months and am far away
  415.     from  being  an  'expert', and this compilation helped  me  enormously.
  416.     Once again, this is not for the person that is starting to  learn  C++,
  417.     but  if  you've  already taken the first step, this FAQ is for you.  If
  418.     you don't have ftp, you  can  also  receive  it via e-mail by sending a
  419.     message  to archive-server@sun.soe.clarkson.edu with the subject  `send
  420.     C++/FAQ'.
  421.  
  422.     The C++ FAQ has been released as  a book called `C++ FAQS -- Frequently
  423.     Asked  Questions'  by Addison-Wesley.  The book is a complete  re-write
  424.     and supposedly has a lot of new material.  Marshall Cline is joined  by
  425.     Greg A.  Lomow as the co-author of the book (ISBN 0-201-58959-3).  I am
  426.     not  sure  if  the FAQ will still be posted to the comp.lang.c++.  I've
  427.     sent mail to the  author,  but  haven't  heard anything.  If anyone out
  428.     there has any more details, please drop me a line.
  429.  
  430.     
  431. 11) Title:    C++ on the World Wide Web
  432.    Filename:    C++.html
  433.    Author:    Marcus Speh
  434.    E-mail:    marcus@x4u.desy.de
  435.    URL:        http://uu-gna.mit.edu:8001/uu-gna/text/cc/index.html
  436.  
  437.     This is one of  the  award  wining  courses  at  the 1st WWW conference
  438.     (congratulations  Marcus.  great job).  One of the newest addition here
  439.     is the Dorill C++ course converted to  HTML.   There  is  a  wealth  of
  440.     information  on  C++  available on the World Wide Web (WWW).  The World
  441.     Wide Web (WWW) is a  wide  area hypermedia information retrieval system
  442.     that  gives the user universal access to a large universe of documents.
  443.     One of the most popular to the Web is called Mosaic developed by  NCSA.
  444.     Mosaic  is  an Internet based global hypermedia browser that allows you
  445.     to discover, retrieve and display documents  and data from all over the
  446.     world.   Global  hypermedia means that information located  around  the
  447.     world is interconnected in an environment that  allows  you  to  travel
  448.     through  the  information  by  clicking on hyperlinks-- terms, icons or
  449.     images in documents that point to  other related documents.  Here's the
  450.     URL (Uniform Resource Locator) for the C++ Virtual Course.
  451.  
  452.             http://uu-gna.mit.edu:8001/uu-gna/text/cc/index.html
  453.  
  454.     You might also want to connect  to  info.desy.de and browse.  I found a
  455.     lot  of  great  items such as documents and sources on C++  and  Object
  456.     oriented programming, Internet groups for discussions and questions  on
  457.     C++,  discussion of Object-Oriented Literate Programming and many other
  458.     postscript papers.
  459.  
  460.         http://info.desy.de/general/users.html
  461.  
  462.  
  463. 12) Title:    Programming in C
  464.    Filename:    index.html
  465.    Author:    Jutta Degener
  466.    E-mail:    jutta@cs.tu-berlin.de
  467.    URL:        http://www.lysator.liu.se/c/index.html
  468.  
  469.     
  470.     This is really one of the best  collection of C related items out there
  471.     on  the  World Wide Web maintained by the Lysator computer society,  an
  472.     association of  computer  science  students  at  Linkoping  University,
  473.     Sweden.   Here's a list of some of the items.  There is a great section
  474.     on ANSI C, reviews of 3 books and a list of errata from 2 books.  There
  475.     is a very interesting paper called `A development of the C language' by
  476.     Dennis Ritchie that traces the origin of  the language we know and love
  477.     today.
  478.  
  479.     There is a HTML version of  Kernighan's historical "Programming in C: A
  480.     Tutorial"  from 1974 (that describes an early version of C, four  years
  481.     before K&R.  WARNING: DO NOT USE THIS DOCUMENT  AS  A  TUTORIAL);  also
  482.     included  are  the  "Ten  Commandments  for  C  Programmers  (Annotated
  483.     Version)" and a HTML version of Steve Summit's comp.lang.c FAQ.
  484.     
  485.  
  486. Books:
  487. ------
  488.  
  489. [1] "The C Programming Language" (2nd ed.)
  490.     Brian W. Kernighan & Dennis    Ritchie
  491.     Prentice Hall ISBN: 0-13-110362-8
  492.  
  493.     This is the second edition  of  the  original Kernighan & Ritchie (K&R)
  494.     text.   This  book is  commonly referred to as the New Testament as  it
  495.     includes the modifications incorporated by  the  ANSI  standard,  while
  496.     retaining  the  nature  of the 1st edition.  This book assumes that the
  497.     reader  has  some  basic  programming  knowledge.   So  if  you're just
  498.     starting  to program and C is the first language, this might not be the
  499.     ideal book.  This is one of THE  BEST books  on  C  and  a  must  have,
  500.     especially if you're starting your own little programming library.
  501.  
  502.  
  503. [2] "Programming in ANSI C" (Revised edition: 1994)
  504.     Kochan, Steven
  505.     SAMS Publishing ISBN 0-672-30339-6
  506.  
  507.     This book by  Steve  Kochan  is  absolutely  the  best  book for anyone
  508.     starting  out programming in C.  This is an excellent introductory text
  509.     with frequent examples and good text.  This book makes  no  assumptions
  510.     about the particular computer system or operating system on which the C
  511.     language  is  implemented.   This  books  is  written  for  novices and
  512.     experienced programmers alike.  I  love  this book as the comprehensive
  513.     'teach by examples' book can help you master the unique features of the
  514.     C  language.   There is complete coverage of program looping,  decision
  515.     making, arrays,  strings,  pointers  and  bit  operations  and  helpful
  516.     end-of-chapter  exercises.   This  is the book I used to learn C and it
  517.     really is a great book.  The  K&R  book is really great as a reference,
  518.     but not as the first book.
  519.  
  520.  
  521. [3] "Expert C Programming: Deep C Secrets"
  522.     Peter Van Der Linden
  523.     SunSoft Press. (ISBN 0-13-177429-8)
  524.  
  525.  
  526.     Peter has written one of the  greatest  books  to hit the computer book
  527.     stands  in a long time!  This is not your typical C book, but is rather
  528.     a fun book to read.  As I told Peter,  most  C  programming  texts  are
  529.     really boring as all they do is describe the functions, give a abstract
  530.     example  and  then  move  onto something different.  This book is chock
  531.     full of real world C stories and  folklore, including a story about the
  532.     C  bug that brought down the AT&T network.  I found the tongue-in-cheek
  533.     attitude and real world examples/stories very, very interesting.   Run,
  534.     don't  walk,  down  to  your  local  store and buy this book.  I really
  535.     really loved this book, and I read most of it in one sitting.  There is
  536.     also a great introduction to C++  for  C  programmers that will get you
  537.     started with C++ and Object-Oriented programming.  This book is not for
  538.     beginners, but is a great second book on C.
  539.  
  540.     Expert C Programming is also ideal for  those C programmers who want to
  541.     move  to C++.  According to the author, the book puts the "fun" back in
  542.     "functions" :)
  543.  
  544.  
  545.  
  546. [4] "C: The Complete Reference" (2nd ed.) 
  547.     Schildt, Herbert.
  548.     Osbourne/McGraw-Hill.  (ISBN 0-07-881538-X).
  549.  
  550.     This is a pretty good C language  reference book.  I am more partial to
  551.     the Microsoft C Bible as a reference but this is not a bad book at all.
  552.     If  you're  a beginning C programmer or a seasoned pro, the answers  to
  553.     most of C questions can be found in this one-step resource.  This  book
  554.     presents  an  extensive  summary of C library functions defined by ANSI
  555.     and many common extensions  including  UNIX.   This  book is a must for
  556.     that perfect programmer library.
  557.  
  558. [5] Absolute Beginner's Guide to C
  559.     Perry, Greg
  560.     SAMS Publishing. ISBN 0-672-30341-8
  561.  
  562.     This is a absolutely  beginner's  book.   If  you have never programmed
  563.     before,  this book is for you.  No knowledge of any programming concept
  564.     is assumed.  I like the fact that this book talks to you at your  level
  565.     without  ever talking down to you.  This book does not try to overwhelm
  566.     the  beginners  with  a  lot  of  technical  details  while emphasizing
  567.     introductory  principles.  If you've never programmed, this is the book
  568.     for you.  If you are familiar with programming, I would suggest  either
  569.     'The  C programming language' by Kernighan & Ritchie or 'Programming in
  570.     ANSI C' by Kochan.
  571.  
  572. [6] Microsoft C Bible. 1990 (2nd ed.)
  573.     Waite Group Staff.
  574.     Howard W. Sams & Company. ISBN 0-672-22620-0 
  575.  
  576.     This book is a must for  every programmer, especially those who program
  577.     in  the  DOS  environment.   The Bible  organizes  and  simplifies  the
  578.     information contained in Microsoft's C  library.   Each  function  page
  579.     gives the purpose, syntax, example call, includes, common uses, returns
  580.     and  examples.  The book also has compatibility check boxes, so you can
  581.     be sure your program compiles with  the Microsoft C v5.0-7.0, Microsoft
  582.     Quick C, Borland Turbo C and UNIX system V compilers.
  583.  
  584. [7] Teach Yourself C++ 1992
  585.     Herbert Schildt
  586.     Osborne McGraw-Hill. ISBN 0-07-881760-9
  587.  
  588.     Teach Yourself C++ is another  great  book  from Herbert Schildt who is
  589.     more  popular for his great C books.  This book is especially  designed
  590.     for programmers who already know how to  program  in  C.   Based  on  a
  591.     15-minute lesson format, this book includes a lot of exercise and skill
  592.     checks  to  make  sure your programming abilities grow by each chapter.
  593.     This book is  really  the  perfect  introductory  guide  for anyone who
  594.     already knows how to program in C.
  595.     
  596.     According to my sources, this book  is currently under revision.  There
  597.     are  several items missing from this book as it was written before  C++
  598.     was finalized.  I still think it is a pretty nice book.
  599.  
  600.  
  601. [8] The C++ Programming Language (2nd edition)
  602.     Bjarne Stroustrup
  603.     Addison Wesley (ISBN 0-201-53992-6)
  604.  
  605.     Bjarne Stroustrup is the designer of C++  and has written 2 great books
  606.     on C++.  This book is divided into three parts: The first part provides
  607.     a  tutorial introduction to C++.  The second part presents a discussion
  608.     of design and software development issues arising  in  connection  with
  609.     the use of C++ and the third part is a complete reference manual.  With
  610.     the  popularity  of  C++, several independent distributions of C++ have
  611.     come  forward,  but  the  book  discusses   'pure  C++;'  that  is,  no
  612.     implementation  dependent extensions are used.  I have been programming
  613.     in C++ for a while and yet found this book very helpful.   One  of  the
  614.     best  way  to learn a programming language is by writing small programs
  615.     relevant to the item you study.  There are exercises at the end of each
  616.     chapter to test/apply  what  you  learned  in  that particular chapter.
  617.     This  wasn't  the book I used to learn C++ and I only recently  got  it
  618.     from DEC [DEC ships this book with their C++ compiler in lieu  of  real
  619.     documentation :)], but I wish I had gotten it sooner.  This is really a
  620.     great  book and worth every penny.  If anyone has an extra copy of 'The
  621.     annotated C++ reference' by  the  same  author,  drop  me a line.  I've
  622.     already  spent about $1400.00 this year on books and I can't afford  to
  623.     spend anymore.  :)
  624.  
  625.  
  626. [9] Using Visual C++
  627.     Shammas, Namir
  628.     Que Corporation  ISBN: 1-56529-626-5
  629.  
  630.     A lot of people have e-mailed me asking for recommendation for a Visual
  631.     C++/MS-Windows programming book and  the  one I use/recommend is 'Using
  632.     Visual  C++'.   This book is aimed at readers who are already  familiar
  633.     with C++ and Windows.  This book covers many  programming  topics  that
  634.     use  C++  and the Microsoft Foundation Classes (MFC).  This book starts
  635.     with an overview of  the  Visual  C++  workbench and the MFC hierarchy.
  636.     The  book  also  discusses the AppWizard, ClassWizard  and  App  Studio
  637.     utility.  This book really lets you take  full  advantage  of  the  C++
  638.     compiler and all the utilities that come with it.  Microsoft provides a
  639.     lot of great information with the compiler package, but I found it hard
  640.     to  look  through  20 different manuals to find some basic information.
  641.     By the time you finish this book, you  will be ready to create your own
  642.     MS-Windows  applications.   Windows programming is pretty complex,  but
  643.     this comprehensive guide shows you efficient and proven  techniques  to
  644.     build powerful applications.  
  645.  
  646.     Another great  book  is  'Visual  C++:  A  Developer's  Guide'  by Alex
  647.     Leavens.  (ISBN 1-55851-339-6) This book explores the comprehensive set
  648.     of  programming  tools that come with Visual C++.  This book shows  you
  649.     how to take advantage of MFC, OLE 2.0, add sounds  to  various  Windows
  650.     systems events and creating icons, cursors and bitmaps images.
  651.  
  652.  
  653.  
  654. [10]C++ Primer  (2nd edition)
  655.     Lippman, Stanley B
  656.     Addison Wesley  ISBN 0-201-54848-8
  657.  
  658.     The C++ Primer is a great book and  will make learning C++ a joy.  This
  659.     really  is  one of the best books C++ book out there, but it assumes  a
  660.     lot of familiarity with programming concepts and a  proficiency  in  C.
  661.     Everyone  I know who uses C++ recommends this book very highly.  If you
  662.     are interested in  learning  more  about  Object  Oriented Program, you
  663.     might consider buying "Object Oriented Design" by Peter Coad and Edward
  664.     Yourdon" (ISBN 0-13-630070-7)
  665.  
  666.  
  667. [11]Learn C++ on the Macintosh
  668.     Dave Mark
  669.     Addison-Wesley ISBN 0-201-62204-1
  670.  
  671.     This book comes  with  a  customized  version  of  Symantec C++ for the
  672.     Macintosh.   In addition, there is a coupon for obtaining the  complete
  673.     version of Symantec C++ at a much reduced  price.   I  would  recommend
  674.     this  book for those who are just beginning to program in C++; however,
  675.     it does assume at least  a  working  knowledge  of C.  There is a quick
  676.     review  of  C at the beginning.  Dave Mark also has a book 'Learn C  on
  677.     the  Macintosh'.   It  has  the  same  great  style  and  comes  highly
  678.     recommended.  Thanks Lizann Bolinger.
  679.  
  680.  
  681. Conclusion:
  682.  
  683.     C and C++ are great  programming  languages that can make programming a
  684.     lot  of fun.  One of the best ways to learn is by taking a  programming
  685.     class.  See if you can take a class at your school, or take a class  at
  686.     night school.  Programming in C/C++ is a skill that could end up saving
  687.     you your job or help you get a better job.  I hope these tutorials help
  688.     you in your quest to learn the C and C++ programming language.
  689.  
  690.  
  691. Acknowledgment:
  692. ---------------
  693.  
  694.     Steve Summit         scs@eskimo.com
  695.     Lizann Bolinger        bolinger@zeno.ibd.nrc.ca
  696.     Blake Sobiloff        sobiloff@mail.lap.umd.edu
  697.     Alex Wu            wua@cpsc.ucalgary.ca
  698.     Ian Jackson        ijackson@nyx.cs.du.edu
  699.     Peter Vanderlinden    Peter.Vanderlinden@eng.sun.com
  700.         Robin Schogol        rschogol@lehman.com
  701.     Marcus Speh         marcus@x4u.desy.de
  702.     Jutta Degener         jutta@cs.tu-berlin.de
  703.  
  704. ---------
  705.                * List of C tutorials   Last Update: 9/12/94 *
  706.        * Compiled By:  Vinit Carpenter -  carpenterv@vms.csd.mu.edu *
  707.  
  708.  
  709.     Note that this document is provided  as  is.   The information in it is
  710.     *not* warranted to be correct; you use it at your own risk.
  711.  
  712. o   The LEARN C/C++ TODAY  List  is  Copyright  1994 by Vinit S.  Carpenter
  713.     (carpenterv@vms.csd.mu.edu).   It may be reproduced and distributed  in
  714.     whole or in part, subject to the following conditions:
  715.  
  716. o   This  copyright  and  permission  notice   and  the  paragraph  in  the
  717.     introduction  about  the frequency of updates must be retained  on  all
  718.     complete or partial copies.
  719.  
  720. o   Any translation or  derivative  work  must  be  approved  by  me before
  721.     distribution.  Email me - I'll will be happy to oblige !
  722.  
  723. o   If you wish  to  charge  for  non-machine-readable  copies  you need my
  724.     approval  before  distribution.   Note  that this  restriction  is  not
  725.     intended to prohibit charging for the service of printing or copying  a
  726.     document supplied by your customer.
  727.  
  728. o   If  you  distribute  partial  copies  of  this  list,  instructions for
  729.     obtaining  the  complete  version  must be included, and  a  means  for
  730.     obtaining a complete version free or at cost price provided.
  731.  
  732. o   Exceptions to these rules  may  be  granted,  and  I  shall be happy to
  733.     answer  any questions about this copyright --- Simply e-mail me.  These
  734.     restrictions are here to protect the contributors, not to restrict  you
  735.     as educators and learners.
  736.  
  737. o   Vinit Carpenter asserts the  right  to  be  identified as the author of
  738.     this  work, and claims the moral rights of paternity and integrity,  in
  739.     accordance with the Copyright, Designs and Patents Act, 1988.
  740.  
  741. -----------------------------------------------------------------------------
  742. Vinit S. Carpenter       Marquette University      carpenterv@vms.csd.mu.edu
  743. -----------------------------------------------------------------------------
  744.      Author of the INTERNET-MENU for OpenVMS and Learn C/C++ TODAY List
  745.                           * Email me for details *
  746.    <a href="http://ncc1701d.csd.mu.edu"> My Personal Linux Web Server</a>
  747. -----------------------------------------------------------------------------
  748. Geek Code: GE d? -p+ c++++ l++ u++ e- m--- s+/+ n--- h++ f? g+ w++ t+++ y+ y*
  749.  
  750. --- Internet Message Header Follows ---
  751. Path: inferno.mpx.com.au!metro!news.cs.su.oz.au!harbinger.cc.monash.edu.au!msuinfo!agate!howland.reston.ans.net!spool.mu.edu!mnemosyne.cs.du.edu!nyx10.cs.du.edu!not-for-mail
  752. From: carpenterv@vms.csd.mu.edu (V. S. Carpenter)
  753. Newsgroups: comp.lang.c,comp.lang.c++,comp.answers,news.answers
  754. Subject: LEARN C/C++ TODAY (A list of resources/tutorials)
  755. Followup-To: comp.lang.c,comp.lang.c++
  756. Date: 21 Sep 1994 20:54:53 -0600
  757. Organization: University of Denver, Dept. of Math & Comp. Sci.
  758. Lines: 748
  759. Sender: vcarpent@nyx10.cs.du.edu
  760. Approved: news-answers-request@MIT.EDU
  761. Message-ID: <35qrlt$cfk@nyx10.cs.du.edu>
  762. NNTP-Posting-Host: nyx10.cs.du.edu
  763. Keywords: LEARN C C++ PROGRAMMING TUTORIALS
  764. Xref: inferno.mpx.com.au comp.lang.c:30487 comp.lang.c++:36943 comp.answers:5143 news.answers:16180
  765.  
  766.